using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._GeoAnalyticsDesktopTools._Utilities._BigDataConnections
{
    /// <summary>
    /// <para>Duplicate Dataset From Big Data Connection</para>
    /// <para>Creates a duplicate of a big data connection (BDC) dataset.</para>
    /// <para>创建大数据连接 （BDC） 数据集的副本。</para>
    /// </summary>    
    [DisplayName("Duplicate Dataset From Big Data Connection")]
    public class DuplicateDatasetFromBDC : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public DuplicateDatasetFromBDC()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_bdc_dataset">
        /// <para>Big Data Connection Dataset</para>
        /// <para>The BDC dataset to be duplicated.</para>
        /// <para>要复制的 BDC 数据集。</para>
        /// </param>
        public DuplicateDatasetFromBDC(object _bdc_dataset)
        {
            this._bdc_dataset = _bdc_dataset;
        }
        public override string ToolboxName => "GeoAnalytics Desktop Tools";

        public override string ToolName => "Duplicate Dataset From Big Data Connection";

        public override string CallName => "gapro.DuplicateDatasetFromBDC";

        public override List<string> AcceptEnvironments => [];

        public override object[] ParameterInfo => [_bdc_dataset, _duplicate_name, _updated_bdc];

        /// <summary>
        /// <para>Big Data Connection Dataset</para>
        /// <para>The BDC dataset to be duplicated.</para>
        /// <para>要复制的 BDC 数据集。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Big Data Connection Dataset")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _bdc_dataset { get; set; }


        /// <summary>
        /// <para>Duplicate Name</para>
        /// <para>The name of the output BDC dataset.</para>
        /// <para>输出 BDC 数据集的名称。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Duplicate Name")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _duplicate_name { get; set; } = null;


        /// <summary>
        /// <para>Updated BDC</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Updated BDC")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _updated_bdc { get; set; }


        public DuplicateDatasetFromBDC SetEnv()
        {
            base.SetEnv();
            return this;
        }

    }

}